package com.vogue.supplymall.order.domain.biz;

import com.vogue.supplymall.common.annotation.AkkaRemoteServer;
import com.vogue.supplymall.common.domain.dto.MultiplePayInfo;
import com.vogue.supplymall.common.domain.dto.OrderInfo;
import com.vogue.supplymall.payment.dto.IResultParameter;
import com.vogue.supplymall.payment.dto.PayCancelInputParameter;

/**
 * 支付业务处理
 * @author cy
 */
@AkkaRemoteServer
public interface OrderPayBiz {

    /**
     * 合并支付处理（单笔的也可以调用此方法）
     * @param multiplePayInfo 合并支付数据封装DTO
     * @return 结果返回信息
     */
    public IResultParameter orderPay(MultiplePayInfo multiplePayInfo);

    /**
     * 合并支付处理--事务层（单笔也可以走此方法）
     * @param multiplePayInfo 订单信息列表
     * @return 结果返回信息
     */
    public IResultParameter payMultiple(MultiplePayInfo multiplePayInfo);
    
    /**
     * 合并支付处理（单笔的）
     * @param orderinfo 封装的单笔的订单数据
     * @return 结果返回信息
     */
    public IResultParameter orderPay(OrderInfo orderinfo);
    
    /**
     * 订单退款（指退款不做其他操作，可以理解成一种补救措施的方法）
     * @param orderInfo 取消订单的支付方式等数据封装
     * @return 结果返回信息
     */
    public IResultParameter orderRefund(OrderInfo orderInfo) throws Exception;
}
